import API from "@/utils/request";

//获取spu的基本属性列表，新增或修改时加载对话框时调用
export function getBasicSpuAttr() {
    // return new Promise((resolve)=>{
    //     setTimeout(()=> resolve({code:0,data:{
    //                 "material": [
    //                     "亚麻",
    //                     "钢板",
    //                     "PVC",
    //                     "帆布",
    //                     "塑料"
    //                 ],
    //                 "function": [
    //                     "运动",
    //                     "芜湖",
    //                     "舒适",
    //                     "增高",
    //                     "合脚",
    //                     "防水",
    //                     "透气"
    //                 ],
    //                 "assurance": [
    //                     "八天有理由",
    //                     "三年的保修",
    //                     "七天无理由"
    //                 ],
    //                 "people": [
    //                     "女鞋",
    //                     "通用",
    //                     "老年鞋",
    //                     "男鞋",
    //                     "童鞋"
    //                 ]
    //             }})
    //     ,500)
    // })
    return API.get('/attribute/getBasic')
}

export function getBrandList() {
    // return new Promise((resolve)=>{
    //     setTimeout(()=> resolve({code:0,data:["回力","特步","安踏","乔丹","361°","耐克"]})
    //         ,500)
    // })
    return API.get('/brands/get', {params: {name: ''}})
}

//获取spu种类列表
export function getCateList() {
    // return new Promise((resolve)=>{
    //     setTimeout(()=> resolve({code:0,data:["帆布鞋","运动鞋","皮鞋","老爹鞋","拖鞋","马丁靴"]})
    //         ,500)
    // })
    return API.get('/categories/get', {params: {name: ''}})
}

//获取Attribute所有尺寸和颜色
export function getSizeAndColorList() {
    // return new Promise((resolve)=>{
    //     setTimeout(()=> resolve({code:0,data: {
    //                     colorList:["白色","黑色","红色","蓝色","紫色","黄色","青色","雅川黛","远峰蓝","卡其色"],
    //                     sizeList:["35","36","37","38","39","40","41","42","43","44"]
    //                 }
    //     }),500)
    // })
    return API.get('/attribute/getSizeColor')
}

export function getSkuList(spuId) {
    // let initSkuList = [
    //     {
    //         "id":1,
    //         "skuId": 88,
    //         "price": 3,
    //         "salePrice": 1,
    //         "urls": 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
    //         "attribute": '{"size": "42码", "color": "紫色"}',
    //         "stock": 8,
    //         "createTime": "2002-01-29 16:14:24",
    //         "spuId": 1,
    //         "state": 0
    //     },
    //     {
    //         "id":2,
    //         "skuId": 46,
    //         "price": 37,
    //         "salePrice": 80,
    //         "urls": 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
    //         "attribute": '{"size": "36码", "color": "黑色"}',
    //         "stock": 50,
    //         "createTime": "2012-05-22 05:42:49",
    //         "spuId": 1,
    //         "state": 1
    //     },
    //     {
    //         "id":3,
    //         "skuId": 58,
    //         "price": 41,
    //         "salePrice": 56,
    //         "urls": 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
    //         "attribute": '{"size": "35码", "color": "紫色"}',
    //         "stock": 22,
    //         "createTime": "2016-12-09 12:03:18",
    //         "spuId": 1,
    //         "state": 1
    //     },
    //     {
    //         "id":4,
    //         "skuId": 87,
    //         "price": 81,
    //         "salePrice": 11,
    //         "urls": 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
    //         "attribute": '{"size": "38码", "color": "白色"}',
    //         "stock": 43,
    //         "createTime": "2001-07-25 05:33:34",
    //         "spuId": 1,
    //         "state": 1
    //     },
    //     {
    //         "id":5,
    //         "skuId": 19,
    //         "price": 77,
    //         "salePrice": 73,
    //         "urls": 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
    //         "attribute": '{"size": "35码", "color": "蓝色"}',
    //         "stock": 10,
    //         "createTime": "2004-12-18 15:19:29",
    //         "spuId": 1,
    //         "state": 0
    //     },
    //     {
    //         "id":6,
    //         "skuId": 55,
    //         "price": 86,
    //         "salePrice": 55,
    //         "urls": 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
    //         "attribute": '{"size": "39码", "color": "蓝色"}',
    //         "stock": 43,
    //         "createTime": "1997-12-07 17:11:51",
    //         "spuId": 1,
    //         "state": 0
    //     },
    //     {
    //         "id":8,
    //         "skuId": 36,
    //         "price": 37,
    //         "salePrice": 97,
    //         "urls": 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
    //         "attribute": '{"size": "35码", "color": "蓝色"}',
    //         "stock": 75,
    //         "createTime": "2001-01-31 13:21:44",
    //         "spuId": 1,
    //         "state": 1
    //     },
    //     {
    //         "id":10,
    //         "skuId": 71,
    //         "price": 11,
    //         "salePrice": 15,
    //         "urls": 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
    //         "attribute": '{"size": "38码", "color": "白色"}',
    //         "stock": 36,
    //         "createTime": "1974-01-10 15:45:30",
    //         "spuId": 1,
    //         "state": 1
    //     },
    //     {
    //         "id":13,
    //         "skuId": 99,
    //         "price": 2,
    //         "salePrice": 87,
    //         "urls": 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
    //         "attribute": '{"size": "43码", "color": "蓝色"}',
    //         "stock": 16,
    //         "createTime": "1978-11-13 15:39:29",
    //         "spuId": 1,
    //         "state": 1
    //     },
    //     {
    //         "id":18,
    //         "skuId": 62,
    //         "price": 27,
    //         "salePrice": 32,
    //         "urls": 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
    //         "attribute": '{"size": "39码", "color": "蓝色"}',
    //         "stock": 25,
    //         "createTime": "1988-12-15 11:01:20",
    //         "spuId": 1,
    //         "state": 0
    //     }
    // ]
    // let list = initSkuList.map(sku=>{return {...sku,spuId,id:sku.id*spuId}})
    // list.length = initSkuList.length - spuId
    // return new Promise((resolve, reject) => {
    //     setTimeout(()=>resolve({code:0,data:list}) ,500)
    // })
    return API.get('/sku/back', {params: {id: spuId}})
}

export function getSpuListFront({name, brandName, categoryName, sortType}, {pageNum, pageSize}) {
    return getSpuList(`/goods/frontFindAll?pageNum=${pageNum}&pageSize=${pageSize}&sortType=${sortType ? sortType : 0}`, {
        name,
        brandName,
        categoryName
    })
}

export function getSpuById(id) {
    //将spu的attribute转为对象
    return API.get(`/goods/${id}`).then(res => {
        if (res?.code === '0') {
            let attr = JSON.parse(res.data.attribute)
            if (!attr)
                attr = {}
            res.data = {...res.data, attribute: attr}
        }
        return res
    })
}

export function getSkuListFront(spuId) {
    return API.get('/sku/front',{params:{id:spuId}}).then(res => {
        //处理sku的attribute属性，将其由字符串转为对象
        if (res?.code === '0') {
            res.data = res.data.map(sku => {
                let attr = JSON.parse(sku.attribute)
                if (!attr)
                    attr = {}
                return {...sku, attribute: attr}
            })
        }
        return res
    })
    // return new Promise((resolve) => {
    //     setTimeout(() => resolve({
    //         code: "0", data:
    //             [
    //                 {
    //                     "id": "34",
    //                     "spuId": "1",
    //                     "price": 299.00,
    //                     "salePrice": 199.00,
    //                     attribute: {"size": "43码", "color": "黑色"},
    //                     "urls": "http://localhost:9999/files/1716720786301",
    //                     "stock": 0,
    //                     "createTime": "2024-05-26 18:53:15",
    //                     "updateTime": "2024-05-26 18:53:15",
    //                     "state": 0,
    //                     "status": 0,
    //                     "sort": 0
    //                 }, {
    //                 "id": "35",
    //                 "spuId": "1",
    //                 "price": 299.00,
    //                 "salePrice": 399.00,
    //                 "attribute": {"size": "40码", "color": "蓝色"},
    //                 "urls": "http://localhost:9999/files/1716720921811",
    //                 "stock": 3,
    //                 "createTime": "2024-05-26 18:55:35",
    //                 "updateTime": "2024-05-26 18:55:35",
    //                 "state": 0,
    //                 "status": 0,
    //                 "sort": 0
    //             }, {
    //                 "id": "36",
    //                 "spuId": "1",
    //                 "price": 299.00,
    //                 "salePrice": 299.00,
    //                 "attribute": {"size": "42码", "color": "红色"},
    //                 "urls": "http://localhost:9999/files/1716721001211",
    //                 "stock": 4,
    //                 "createTime": "2024-05-26 18:56:01",
    //                 "updateTime": "2024-05-26 18:56:02",
    //                 "state": 0,
    //                 "status": 0,
    //                 "sort": 0
    //             }, {
    //                 "id": "37",
    //                 "spuId": "1",
    //                 "price": 299.00,
    //                 "salePrice": 299.00,
    //                 "attribute": {"size": "43码", "color": "白色"},
    //                 "urls": "http://localhost:9999/files/1716721061211",
    //                 "stock": 5,
    //                 "createTime": "2024-05-26 18:56:06",
    //                 "updateTime": "2024-05-26 18:56:06",
    //                 "state": 0,
    //                 "status": 0,
    //                 "sort": 0
    //             }, {
    //                 "id": "38",
    //                 "spuId": "1",
    //                 "price": 299.00,
    //                 "salePrice": 299.00,
    //                 "attribute": {"size": "44码", "color": "黄色"},
    //                 "urls": "http://localhost:9999/files/1716721121211",
    //                 "stock": 6,
    //                 "createTime": "2024-05-26 18:56:12",
    //                 "updateTime": "2024-05-26 18:56:12",
    //                 "state": 0,
    //                 "status": 0,
    //                 "sort": 0
    //             }, {
    //                 "id": "39",
    //                 "spuId": "1",
    //                 "price": 299.00,
    //                 "salePrice": 299.00,
    //                 "attribute": {"size": "45码", "color": "紫色"},
    //                 "urls": "http://localhost:9999/files/1716721181211",
    //                 "stock": 7,
    //                 "createTime": "2024-05-26 18:56:18",
    //                 "updateTime": "2024-05-26 18:56:18",
    //                 "state": 0,
    //                 "status": 0,
    //                 "sort": 0
    //             }, {
    //                 "id": "40",
    //                 "spuId": "1",
    //                 "price": 299.00,
    //                 "salePrice": 299.00,
    //                 "attribute": {"size": "46码", "color": "红色"},
    //                 "urls": "http://localhost:9999/files/1716721241211",
    //                 "stock": 8,
    //                 "createTime": "2024-05-26 18:56:24",
    //                 "updateTime": "2024-05-26 18:56:24",
    //                 "state": 0,
    //                 "status": 0,
    //                 "sort": 0
    //             }, {
    //                 "id": "41",
    //                 "spuId": "1",
    //                 "price": 299.00,
    //                 "salePrice": 299.00,
    //                 "attribute": {"size": "47码", "color": "白色"},
    //                 "urls": "http://localhost:9999/files/1716721301211",
    //                 "stock": 9,
    //                 "createTime": "2024-05-26 18:56:30",
    //                 "updateTime": "2024-05-26 18:56:30",
    //                 "state": 0,
    //                 "status": 0,
    //                 "sort": 0
    //             }, {
    //                 "id": "42",
    //                 "spuId": "1",
    //                 "price": 299.00,
    //                 "salePrice": 299.00,
    //                 "attribute": {"size": "48码", "color": "黑色"},
    //                 "urls": "http://localhost:9999/files/1716720786301",
    //                 "stock": 10,
    //                 "createTime": "2024-05-26 18:56:36",
    //                 "updateTime": "2024-05-26 18:56:36",
    //                 "state": 0,
    //                 "status": 0,
    //                 "sort": 0
    //             }, {
    //                 "id": "43",
    //                 "spuId": "1",
    //                 "price": 299.00,
    //                 "salePrice": 299.00,
    //                 "attribute": {"size": "49码", "color": "蓝色"},
    //                 "urls": "http://localhost:9999/files/1716721421211",
    //                 "stock": 11,
    //                 "createTime": "2024-05-26 18:56:42",
    //                 "updateTime": "2024-05-26 18:56:42",
    //                 "state": 0,
    //                 "status": 0,
    //                 "sort": 0
    //             }, {
    //                 "id": "44",
    //                 "spuId": "1",
    //                 "price": 299.00,
    //                 "salePrice": 299.00,
    //                 "attribute": {"size": "50码", "color": "卡其色"},
    //                 "urls": "http://localhost:9999/files/1716721481211",
    //                 "stock": 12,
    //                 "createTime": "2024-05-26 18:56:48",
    //                 "updateTime": "2024-05-26 18:56:48",
    //                 "state": 0,
    //                 "status": 0,
    //                 "sort": 0
    //             }, {
    //                 "id": "45",
    //                 "spuId": "1",
    //                 "price": 299.00,
    //                 "salePrice": 299.00,
    //                 "attribute": {"size": "51码", "color": "米白色"},
    //                 "urls": "http://localhost:9999/files/1716721541211",
    //                 "stock": 13,
    //                 "createTime": "2024-05-26 18:56:54",
    //                 "updateTime": "2024-05-26 18:56:54",
    //                 "state": 0,
    //                 "status": 0,
    //                 "sort": 0
    //             }, {
    //                 "id": "46",
    //                 "spuId": "1",
    //                 "price": 299.00,
    //                 "salePrice": 299.00,
    //                 "attribute": {"size": "52码", "color": "灰色"},
    //                 "urls": "http://localhost:9999/files/1716721601211",
    //                 "stock": 14,
    //                 "createTime": "2024-05-26 18:56:60",
    //                 "updateTime": "2024-05-26 18:56:60",
    //                 "state": 0,
    //                 "status": 0,
    //                 "sort": 0
    //             }
    //             ]
    //     }), 300)
    // })
}

export function getSpuListBack({name, brandName, categoryName, sortType}, {pageNum, pageSize}) {
    // console.log('name>>>'+name, 'brandName>>>'+brandName, 'categoryName>>>'+categoryName)
    return getSpuList(`/goods/findAllByCondition?pageNum=${pageNum}&pageSize=${pageSize}&sortType=${sortType ? sortType : 0}`, {
        name,
        brandName,
        categoryName
    })
}

export function getSpuList(url,{name,brandName,categoryName}){
    return API.post(url,{name,brandName,categoryName}).then(res => {
        //集中处理spu的attribute属性，将其由字符串转为对象
        if (res.code === '0') {
            res.data.records = res.data.records.map(spu => {
                let attr = JSON.parse(spu.attribute)
                if (!attr)
                    attr = {}
                return {...spu, attribute: attr}
            })
        }
        return res
    })
}

export function deleteSpu(arr) {
    // return new Promise(resolve => resolve({code:0,data:null}))
    return API.delete('/goods/spuDelete', {data: arr})
}

export function deleteSku(arr) {
    // return new Promise(resolve => resolve({code:0,data:null}))
    return API.delete('/sku', {data: arr})
}

export function updateSpu(editedSpu) {
    console.log(editedSpu)
    // return new Promise(resolve => resolve({code:0,data:null}))
    return API.put('/goods/spu', editedSpu)
}

export function updateSku(editedSku) {
    console.log(editedSku)
    // return new Promise(resolve => resolve({code:0,data:null}))
    return API.put('/sku', editedSku)
}

export function addSpu(spu) {
    console.log(spu)
    // return new Promise(resolve => resolve({code:0,data:null}))
    return API.post('/goods/spu', spu)
}

export function addSku(sku) {
    console.log(sku)
    // return new Promise(resolve => resolve({code:0,data:null}))
    return API.post('/sku', sku)
}

export function putSkuOn(arr) {
    console.log(arr)
    // return new Promise(resolve => resolve({code:0,data:null}))
    return API.post('/sku/takeOnSku', arr)
}

export function putSkuOff(arr) {
    console.log(arr)
    // return new Promise(resolve => resolve({code:0,data:null}))
    return API.post('/sku/takeOffSku', arr)
}

//根据spuId列表批量上架每个spu下所有的sku
export function putAllSkuOnBatch(spuIdList) {
    console.log(spuIdList)
    // return new Promise(resolve => resolve({code:0,data:null}))
    return API.post('/sku/takeOnSpu', spuIdList)
}

//根据spuId列表批量下架每个spu下所有的sku
export function putAllSkuOffBatch(spuIdList) {
    console.log(spuIdList)
    // return new Promise(resolve => resolve({code:0,data:null}))
    return API.post('/sku/takeOffSpu', spuIdList)
}

export function searchBrandName(keyword) {
    console.log(keyword)
    // return new Promise((resolve, reject) => {
    //     setTimeout(()=>resolve({code:0,data:null}) ,500)
    // })
    return API.get('/brands/get', {params: {name: keyword}})
}

export function searchCateName(keyword) {
    console.log(keyword)
    // return new Promise((resolve, reject) => {
    //     setTimeout(()=>resolve({code:0,data:null}) ,500)
    // })
    return API.get('/categories/get', {params: {name: keyword}})
}

//获取所有被推荐商品
export function getRecommendedGoods() {
    return API.get('/goods/recommend')
}

//获取商品所用的销量
export function getGoodsSales() {
    return API.get('/goods/sales')
}
